/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.sadhar.sipp.kuncipenyusunananggaran;

import java.util.List;
import java.util.Map;
import org.sadhar.sia.common.ClassConnection;

/**
 *
 * @author Daud_HS
 */
public class KunciPenyusunanAnggaranDAOImpl implements KunciPenyusunanAnggaranDAO {

    public KunciPenyusunanAnggaranDAOImpl() {
        ClassConnection.getTransactionProxyFactoryBean().setTarget(this);
    }

    public List<Map> list() throws Exception {
        return ClassConnection.getJdbc().queryForList("" +
                " SELECT * FROM  ppmk.kunciAnggaranBiaya,ppmk.jenisBiaya,kamus.unkerja  " +
                " WHERE  ppmk.jenisBiaya.kodeJenisBiaya=ppmk.kunciAnggaranBiaya.kodeJenisAnggaran AND " +
                " kamus.unkerja.Kd_unit_kerja=ppmk.kunciAnggaranBiaya.kodeUnit");
    }

    public void edit(KunciPenyusunanAnggaran kunciPenyusunanAnggaran) {
        String sql = "UPDATE ppmk.kunciAnggaranBiaya  set isDikunci=? WHERE " +
                " tahunAnggaran=? and kodeUnit=? and kodeJenisAnggaran=?";
        ClassConnection.getJdbc().update(sql, new Object[]{
                    kunciPenyusunanAnggaran.getisDikunci(),
                    kunciPenyusunanAnggaran.getTahunAnggaran(),
                    Integer.valueOf(kunciPenyusunanAnggaran.getkodeUnit()),
                    kunciPenyusunanAnggaran.getkodeJenisAnggaran()});
    }

    public List<Map> getTahunSebelumnya(String tahun) {
        return ClassConnection.getJdbc().queryForList("select *from ppmk.kunciAnggaranBiaya where tahunAnggaran=?", new Object[]{tahun});
    }

    public void insert(KunciPenyusunanAnggaran anggaran) throws Exception {
        String sql = "insert into ppmk.kunciAnggaranBiaya(tahunAnggaran,kodeUnit,kodeJenisAnggaran,isRevisi," +
                " isDikunci) values(?,?,?,?,?)";
        ClassConnection.getJdbc().update(sql, new Object[]{
                    anggaran.getTahunAnggaran(),
                    anggaran.getkodeUnit(),
                    anggaran.getkodeJenisAnggaran(),
                    anggaran.getisRevisi(),
                    anggaran.getisDikunci()
                });
    }

    public List<Map> getJenisAnggaran() {
        String sql = "select *from jenisBiaya";
        return ClassConnection.getJdbc().queryForList(sql);
    }

    public List<Map> getByJenisBiaya(int kodeJenisBiaya) throws Exception {
        String sql = "select uk.Nama_unit_kerja, jb.jenisBiaya, kb.isDikunci, kb.isRevisi,kb.kodeUnit,kb.kodeJenisAnggaran,kb.tahunAnggaran  from ppmk.kunciAnggaranBiaya kb, kamus.unkerja uk," +
                " ppmk.jenisBiaya jb  " +
                " where uk.Kd_unit_kerja = kb.kodeUnit and jb.kodeJenisBiaya = kb.kodeJenisAnggaran and kb.kodeJenisAnggaran = ?";
        return ClassConnection.getJdbc().queryForList(sql, new Object[]{kodeJenisBiaya});

    }
}
